K8s Helm Chart 服务
本文介绍 K8s Helm Chart 项目中的测试服务和生产服务相关配置。
Helm(opens new window) 是 Kubernetes 应用的包管理工具,使用 Helm Chart 可定义、安装和升级复杂的 Kubernetes 应用。
# 新建服务
系统支持以下三种方式新建 K8s Helm Chart 服务。
从代码库同步:从代码库中同步服务的 Helm Chart 配置,支持的代码源参考 代码源信息。从 Chart 仓库同步:从 Chart 仓库中同步服务的 Helm Chart 配置。使用模板新建:使用 Zadig 平台中的服务 Helm Chart 模板来新建服务,支持一次新建一个服务,也支持批量新建服务。
# 从代码库同步服务
点击从代码库同步 -> 填写代码库及服务配置在代码库中的目录 -> 点击加载,即可从代码库同步服务。同步成功后,当代码库中对应目录的文件有变更时,会通过 Webhook 的方式自动更新此处的服务配置。
以 service2(opens new window) 服务为例,服务的 Helm Chart 配置目录结构为:
├── zadig/examples/multi-service-demo/full-charts/service2
│ ├── Chart.yaml
│ ├── templates
│ │ ├── _helpers.tpl
│ │ ├── deployment.yaml
│ │ └── service.yaml
│ └── values.yaml
2
3
4
5
6
7
从代码库同步该服务:

同步后效果:

# 从 Chart 仓库同步服务
前提
需要先集成 Helm Chart 仓库,参考 集成 Helm Chart 仓库。
点击从 Chart 仓库同步,选择 Chart 仓库及 Chart,新建即可。 
# 使用模板新建单个服务
前提
需要先在系统模板库里新建 Helm Chart 模板,参考 Helm Chart 模板管理
- 点击使用模板新建 -> 填写服务名称并选择模板 -> 按需填写配置后,导入即可。
- 变量配置可使用模板中的默认值,也可以在新建时重新赋值
- 开启
自动同步后,当在模板库中对使用的模板操作应用到服务时,该服务配置将自动基于模板内容同步

- 在
高级设置中,系统还支持用新的 values.yaml 覆盖模板中的 values.yaml 内容,包括手动输入和从指定代码库导入两种途径来覆盖。

# 使用模板批量新建服务
提示
Helm Chart 模板的 values.yaml 文件中不能使用自定义变量
使用 multi-service-demo(opens new window) 案例来说明如何使用模板批量新建服务,必要目录说明如下:
zadig/examples/multi-service-demo
├── base-chart # Helm Chart 模板
│ ├── Chart.yaml
│ ├── templates
│ │ ├── _helpers.tpl
│ │ ├── deployment.yaml
│ │ └── service.yaml
│ └── values.yaml # 不支持使用自定义变量
└── values # 分别对应 3 个服务的 values 文件
├── service1.yaml
├── service2.yaml
└── service3.yaml
2
3
4
5
6
7
8
9
10
11
12
点击使用模板新建 -> 点击批量创建 -> 选择 Helm Chart 模板 -> 选择要导入服务的 values 文件,导入即可。


导入后,效果如下图所示。一份 values 文件会被定义成一个服务,values 文件名即为服务名。服务批量创建完毕后,点击更新环境即可将服务快速应用于环境中。

# 服务版本回滚
参考 服务版本回滚。
# 服务组件
参考 服务组件。

# 自定义 Helm Release 名称
系统默认会使用服务名作为部署的 Helm Release 名称,可在服务右侧的Helm Release 名称配置中按需修改。系统支持通过常量和以下变量组合来配置:
$Product$:项目名称$Service$:服务名称$Namespace$:环境所在的命名空间$EnvName$:环境名称
当修改服务的 Helm Release 名称配置后,系统会自动重新部署环境中的服务,生成新的 Helm Release。

# 服务编排
Zadig 系统支持对多个服务的部署顺序进行编排管理,同一启动顺序组的服务在部署时会并行执行,不同启动顺序组的服务会按照组顺序执行,适用于多个服务的启动顺序有先后依赖关系的场景。
点击服务编排图标,按需对服务启动顺序进行拖拽组合。


# 更新服务
# 更新从代码库同步的服务
从代码库同步服务的 Chart 配置后,会自动创建 Webhook。当对应代码库中有变更时,会自动同步服务的 Chart 配置到 Zadig 中。也可以点击服务右侧的同步按钮,点击加载主动同步更新。

# 更新从 Chart 仓库同步的服务
点击服务右侧的同步按钮,按需修改 Chart 版本号,点击更新即可。

# 更新使用模板新建的服务
当模板内容有变化时,点击服务右侧的同步按钮 -> 点击导入即可同步模板中最新内容,在导入之前也可以在高级设置中修改 Helm values 文件内容。

如果该服务未开启自动同步,也可以直接编辑服务 values.yaml 的内容。

# 删除服务
点击服务右侧的删除按钮即可将服务配置删除。若需要将服务从环境中也删除,点击更新环境并选择要更新的环境即可。

# 标签管理
通过给服务打标签,帮助快速分类和检索服务元信息,具体配置和使用参考 文档。
# 策略配置
在策略中设置部署服务的超时时间以及交付物命名规则。细节参考 策略配置。

# Helm Chart 样例
koderover/zadig(opens new window) 库中提供了 Helm Chart 样例,点击链接(opens new window)查看详情。


